Skip to content

feat(extension): v1.0.2 AMO-ready (Firefox submission prep)#5

Open
RipperMercs wants to merge 1 commit into
mainfrom
extension/firefox-amo-prep
Open

feat(extension): v1.0.2 AMO-ready (Firefox submission prep)#5
RipperMercs wants to merge 1 commit into
mainfrom
extension/firefox-amo-prep

Conversation

@RipperMercs
Copy link
Copy Markdown
Owner

Summary

  • Bumps extension/manifest.json 1.0.1 → 1.0.2
  • Adds Firefox MV3 entry-point fallback (background.scripts: ["bg.js"]) alongside service_worker — Chrome continues to use the worker, Firefox uses the script, both reference the same file
  • Adds gecko.data_collection_permissions.required: ["none"] (Mozilla now requires this declared even when nothing is collected)
  • Regenerates icon48.png (was 32×32 → now true 48×48) and icon128.png (was 400×400 → now true 128×128); 400× master preserved as icons/icon-source-400.png for future re-renders
  • Ignores web-ext-artifacts/ build output

These three fixes correspond to the only errors+warnings web-ext lint flagged against AMO rules. After the patch, lint reports 0 errors (3 informational warnings about FF 140+ keys being ignored on the FF 121 strict_min_version — non-blocking).

Why 1.0.2 only ships to Firefox

Chrome Web Store accepted 1.0.1 with the old icon dimensions and the missing scripts fallback; nothing in this PR breaks Chrome, but pushing 1.0.2 to Chrome solo would trigger a needless re-review. Chrome stays on 1.0.1 until the next functional change, at which point both stores sync.

Test plan

  • npx web-ext lint --source-dir=extension/ --ignore-files=icons/icon-source-400.png → 0 errors, 3 informational warnings
  • npx web-ext build produces a valid 9.7 KB zip (tensorfeed_ai_status-1.0.2.zip)
  • Submitted to AMO 2026-05-20 (awaiting review)
  • AMO approval lands → listing live at https://addons.mozilla.org/firefox/addon/tensorfeed-ai-status/
  • Spot-check icon rendering on Chrome (still 1.0.1) — should be unchanged, since 1.0.1 zip on the store was built before icon files were corrected

🤖 Generated with Claude Code

Three changes to clear AMO (addons.mozilla.org) lint blockers ahead of the
Firefox listing:

- manifest: add `background.scripts: ["bg.js"]` alongside `service_worker`
  so Firefox MV3 has a supported entry point (Chrome continues to use the
  worker; Firefox uses the script — both reference the same bg.js)
- manifest: add `gecko.data_collection_permissions.required: ["none"]` —
  Mozilla now requires this declared even for extensions that collect no
  user data (popup only fetches the public /api/status/summary)
- icons: `icon48.png` was actually 32×32 and `icon128.png` was actually
  400×400; both regenerated at their declared sizes from the 400× master,
  which is preserved as `icon-source-400.png` for future re-renders

`web-ext lint` now passes with 0 errors (3 informational warnings about
Firefox 140+ keys being ignored on the 121 strict_min_version — non-blocking
for AMO).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
RipperMercs added a commit that referenced this pull request May 29, 2026
/#5)

#4: getSeries and getPublisherReceipts fan out one KV read per day, so an
unvalidated wide range (e.g. 2000 to 2030) issued ~11k reads per $0.02 call,
about 11% of the daily KV budget. Added validateRange (ISO format, no
inversion, span capped at 366 days) in x402-index/query.ts and applied it in
both premium handlers AFTER requirePayment as a no-charge
premiumValidationFailure, before the fan-out. Also moved the missing-param
and unknown-publisher returns onto the AFTA no-charge path.

#5: the */5 indexer trigger shared minutes with */10, */15, and */2, and
Cloudflare surfaces only the first-registered matching pattern in event.cron,
so the "else if (cron === '*/5')" branch was shadowed and the tick ran only
about 4x/hour (20-min worst-case gap, past the 10-min SLA). Replaced the dead
branch with a wall-clock minute gate (runs at every multiple-of-5 minute,
immune to first-match-wins), preserving the designed 5-min cadence. The */5
trigger stays so scheduled() still fires at :05/:25/:35/:55.

6 new validateRange tests, full worker suite green (3709).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants